package com.uacp.sgb.vista.convertidores;

import java.util.List;
import java.util.Map;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

import com.uacp.sgb.datos.dominio.entidades.Dependencia;
import com.uacp.sgb.datos.dominio.persistencia.dao.DependenciaDao;

@FacesConverter("convertidor.dependencia")
public class ConvertidorDependencia implements Converter
{	
	@Override
	public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) 
	{
		List<Dependencia> dependencias = null;
		DependenciaDao dependenciaDao = new DependenciaDao();
		
		String nombre = (String)arg1.getAttributes().get("dependencia");
//		Map<String,String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
		
		System.out.println("ENTRO ACA" + nombre);
		if(nombre != null)
		{
			int i = nombre.indexOf(" -- ");
			
			nombre = nombre.substring(0, i);
			
			System.out.println("*" + nombre + "*");
			Dependencia dep = dependenciaDao.buscarPorNombre(nombre);
			dependencias = dependenciaDao.listarAreas(dep);
		}
		else
		{
			dependencias = dependenciaDao.listar();
		}
		
		for(Dependencia dependencia: dependencias)
		{
			if(dependencia.getNombre().equals(arg2))
				return dependencia;
		}
		
		return null;
	}

	@Override
	public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) 
	{
		Dependencia dependencia = (Dependencia)arg2;
		
		return dependencia.getNombre();
	}
}
